package com.city.lambda.syntax2;

import com.city.lambda.interfaces.LambdaNoneReturnMutipleParameter;
import com.city.lambda.interfaces.LambdaNoneReturnSingleParameter;
import com.city.lambda.interfaces.LambdaSingleReturnMutipleParameter;
import com.city.lambda.interfaces.LambdaSingleReturnNoneParameter;

/**
 * Created with IntelliJ IDEA.
 * User: Cheng
 * Date: 2020/4/20
 * Time: 13:15
 * Description: No Description
 */
public class Syntax2 {
    public static void main(String[] args) {
        //进一步精简Lambda表达式
        //1、接口中已经定义了参数类型，实现时可全部不写
        LambdaNoneReturnMutipleParameter lambda1=(a,b)->{
            System.out.println(a-b);
        };
        lambda1.test(3,2);

        //2、当参数只有一个时可不写()
        LambdaNoneReturnSingleParameter labda2=a->{
            System.out.println(a);
        };

        //3、方法的{}，如果方法体只有一条语句，{}可以省略

        //4、如果方法体中只有return，则省略{}的同时省略掉return
        LambdaSingleReturnNoneParameter labda4=()->10;

        //有参数有返回最简方式
        LambdaSingleReturnMutipleParameter labda5=(a,b)->a-b;
        int test = labda5.test(6, 4);
        System.out.println(test);
    }
}
